package br.com.webprojeto.colecoes;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.webprojeto.basicas.*;
import br.com.webprojeto.interfaces.*;

public class ColecaoRota implements InterfaceColecaoRota {
 
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoRota#adicionarRota(br.com.webrastreio.basicas.Rota)
	 */
	public void adicionarRota(Rota Rt) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.saveOrUpdate(Rt);
		sessao.getTransaction().commit();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoRota#removerRota(br.com.webrastreio.basicas.Rota)
	 */
	public void removerRota(Rota Rt) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.delete(Rt);
		sessao.getTransaction().commit();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoRota#atualizarRota(br.com.webrastreio.basicas.Rota)
	 */
	public void atualizarRota(Rota Rt) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.update(Rt);
		sessao.getTransaction().commit();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoRota#listarRota()
	 */
	public List<Rota> listarRota() {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Rota");
		return consulta.list();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoRota#procurarRota(java.lang.String)
	 */
	public Rota procurarRota(String destino) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Rota where destino like ?");
		consulta.setParameter(0, destino);
		Rota Rt = (Rota) consulta.uniqueResult();
		sessao.getTransaction().commit();
		return Rt;
	}
	 
}
 
